/**
 * $Id: TaskCtrlTypes.hpp,v 1.23 2010-01-07 08:05:39 mmatusia Exp $
 *
 * \file
 * \brief Python/SWIG wrap for Dataelement containers for the TaskCtrl interface.
 * \author Antti Maula <antti.maula@tkk.fi>, Marek Matusiak, Tapio Taipalus
 *
 */
%{
#include <inttypes.h>
#include "ownutils.h"
#include "owndebug.h"
#include "common/text.hpp"
#include "common/timestamp.hpp"
#include "TaskCtrlTypes.hpp"
%}
%include "inttypes.i"
%include "TaskCtrlTypes.hpp"

namespace MaCI{
  namespace TaskCtrl{
    
    
    
    /*** Have to define here because don't know how to wrap typedefs with SWIG**/
    struct TTaskCtrlStatusEvent {
    TTaskCtrlStatusEvent(const TTaskCtrlTaskID aTaskID = NULL,
                         const ETaskCtrlTaskState aTaskState = KTaskStateUnknown,
                         const unsigned int aETC_ms = 0,
                         const float aPercentComplete = 0.0)
    : taskID(aTaskID),
        taskState(aTaskState),
        ETC_ms(aETC_ms),
        percentComplete(aPercentComplete)
      {}
      
      TTaskCtrlTaskID taskID;              
      ETaskCtrlTaskState taskState; ///< State of task
      uint32_t ETC_ms;              ///< Estimated time to complete in ms
      float percentComplete;
      
    };
    
    
    
  }
}

